<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <title>06_防抖-基本使用</title>
        <style>
            div {
                width: 300px;
                height: 300px;
                border: 1px solid black;
                font-size: 20px;
            }
        </style>
    </head>
    <body>
        <div>1</div>
        <script>
            // 需求：当鼠标不动之后的2秒  我加1  如果在鼠标不动2秒之内  就不会加1 只
            // 有停止移动 并且2秒后才会加1

            // （1）
            // var div = document.querySelector('div');

            // div.onmousemove = function(){
            //     this.innerHTML++;
            // }

            // （2）
            // var div = document.querySelector('div');

            // function move(){
            //     this.innerHTML++;
            // }

            // div.addEventListener('mousemove',move)


            // （3）
            // var div = document.querySelector('div');

            // function move(){
            //     div.innerHTML++;
            // }

            // function debounce(){
            //     move();
            // }

            // div.addEventListener('mousemove',debounce)


            // （4）封装了防抖的函数  让他可以对任意的函数 进行传参执行
            var div = document.querySelector('div');

            function move(){
                div.innerHTML++;
            }
            var timer = null;

            // 只有2秒之后 才会触发这个func  如果在两秒之内触发 会清空定时器
            function debounce(func){
                return function(){
                    clearTimeout(timer);
                    timer = setTimeout(function(){
                        func();
                    },2000);
                }
            }

            div.addEventListener('mousemove',debounce(move))

            

        </script>
    </body>
</html>